package models

import (
	"gitee.com/showurl/ugly/database"
	"strconv"
)

type ModelPiano struct {
	ID      int    `gorm:"column:id" form:"id" json:"id"`
	SoftKey string `gorm:"column:softkey" form:"softkey" json:"softkey"`
	Alpha   string `gorm:"column:alpha" form:"alpha" json:"alpha"`
	Sound   string `gorm:"column:sound" form:"sound" json:"sound"`
	Num     string `gorm:"column:num" form:"num" json:"num"`
	AppNum  int    `gorm:"column:app_num" form:"app_num" json:"app_num"`
}

func (m *ModelPiano) TableName() string {
	return "piano"
}

func AllPiano() (allPiano []*ModelPiano, err error) {
	err = database.DB.Model(&ModelPiano{}).Find(&allPiano).Error
	return
}

func NumPianoMap() (numPianoMap map[string]ModelPiano) {
	numPianoMap = make(map[string]ModelPiano)
	pianos, err := AllPiano()
	if err != nil {
		panic(err)
	}
	for _, p := range pianos {
		numPianoMap[p.Num] = *p
	}
	return
}

func AppPianoMap() (numPianoMap map[string]ModelPiano) {
	numPianoMap = make(map[string]ModelPiano)
	pianos, err := AllPiano()
	if err != nil {
		panic(err)
	}
	for _, p := range pianos {
		numPianoMap[strconv.Itoa(p.AppNum)] = *p
	}
	return
}
